// @flow 
/**
 *  Query an element selector if it's not an element already.
 */
import { warn, log } from "./debug";
export function query(el: string | Element): Element {
	if( typeof el === 'string' ) {
		// 检测传进来的el是否是字符串
		const selected = document.querySelector(el);
		if(!selected) {
			// 元素不存在的时候
			process.env.NODE_ENV !== "production" && warn("Cannot find Element: " + el);
			return document.createElement('div');
		}
		return selected;
	} else {
		return el;
	}
}

export function getOuterHTML(el: Element): string {
	// 获取最外层元素
	if(el.outerHTML){
		return el.outerHTML;
	} else {
		const container = document.createElement('div');
		container.appendChild(el.childNodes(true));
		return container.innerHTML;
	}
}

// export function query (el: string | Element): Element {
//     if (typeof el === 'string') {
//       const selected = document.querySelector(el)
//       if (!selected) {
//         process.env.NODE_ENV !== 'production' && warn(
//           'Cannot find element: ' + el
//         )
//         return document.createElement('div')
//       }
//       return selected
//     } else {
//       return el
//     }
//   } 